solvoid 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +240 -230
- package/SECURITY.md +39 -0
- package/bin/solvoid-scan +2 -0
- package/dist/cli/commands/ghost.d.ts +11 -0
- package/dist/cli/commands/ghost.d.ts.map +1 -0
- package/dist/cli/commands/ghost.js +185 -0
- package/dist/cli/commands/ghost.js.map +1 -0
- package/dist/cli/commands/rescue.d.ts +3 -0
- package/dist/cli/commands/rescue.d.ts.map +1 -0
- package/dist/cli/commands/rescue.js +300 -0
- package/dist/cli/commands/rescue.js.map +1 -0
- package/dist/cli/comprehensive-rpc-list.d.ts +31 -0
- package/dist/cli/comprehensive-rpc-list.d.ts.map +1 -0
- package/dist/cli/comprehensive-rpc-list.js +341 -0
- package/dist/cli/comprehensive-rpc-list.js.map +1 -0
- package/dist/cli/demo-scan.d.ts +6 -0
- package/dist/cli/demo-scan.d.ts.map +1 -0
- package/dist/cli/demo-scan.js +260 -0
- package/dist/cli/demo-scan.js.map +1 -0
- package/dist/cli/enhanced-privacy-scan.d.ts +46 -0
- package/dist/cli/enhanced-privacy-scan.d.ts.map +1 -0
- package/dist/cli/enhanced-privacy-scan.js +422 -0
- package/dist/cli/enhanced-privacy-scan.js.map +1 -0
- package/dist/cli/ghost-test.d.ts +7 -0
- package/dist/cli/ghost-test.d.ts.map +1 -0
- package/dist/cli/ghost-test.js +192 -0
- package/dist/cli/ghost-test.js.map +1 -0
- package/dist/cli/simple-scan.d.ts +6 -0
- package/dist/cli/simple-scan.d.ts.map +1 -0
- package/dist/cli/simple-scan.js +250 -0
- package/dist/cli/simple-scan.js.map +1 -0
- package/dist/cli/solvoid-scan.d.ts +6 -0
- package/dist/cli/solvoid-scan.d.ts.map +1 -0
- package/dist/cli/solvoid-scan.js +254 -0
- package/dist/cli/solvoid-scan.js.map +1 -0
- package/dist/cli/ultimate-privacy-scan.d.ts +54 -0
- package/dist/cli/ultimate-privacy-scan.d.ts.map +1 -0
- package/dist/cli/ultimate-privacy-scan.js +543 -0
- package/dist/cli/ultimate-privacy-scan.js.map +1 -0
- package/dist/cli/utils/asset-scanner.d.ts +76 -0
- package/dist/cli/utils/asset-scanner.d.ts.map +1 -0
- package/dist/cli/utils/asset-scanner.js +222 -0
- package/dist/cli/utils/asset-scanner.js.map +1 -0
- package/dist/cli/utils/badge-generator.d.ts +33 -0
- package/dist/cli/utils/badge-generator.d.ts.map +1 -0
- package/dist/cli/utils/badge-generator.js +261 -0
- package/dist/cli/utils/badge-generator.js.map +1 -0
- package/dist/cli/utils/env-validator.d.ts +17 -0
- package/dist/cli/utils/env-validator.d.ts.map +1 -0
- package/dist/cli/utils/env-validator.js +254 -0
- package/dist/cli/utils/env-validator.js.map +1 -0
- package/dist/cli/utils/ghost-art.d.ts +14 -0
- package/dist/cli/utils/ghost-art.d.ts.map +1 -0
- package/dist/cli/utils/ghost-art.js +285 -0
- package/dist/cli/utils/ghost-art.js.map +1 -0
- package/dist/cli/utils/ghost-calculator.d.ts +52 -0
- package/dist/cli/utils/ghost-calculator.d.ts.map +1 -0
- package/dist/cli/utils/ghost-calculator.js +207 -0
- package/dist/cli/utils/ghost-calculator.js.map +1 -0
- package/dist/cli/utils/rescue-engine.d.ts +61 -0
- package/dist/cli/utils/rescue-engine.d.ts.map +1 -0
- package/dist/cli/utils/rescue-engine.js +210 -0
- package/dist/cli/utils/rescue-engine.js.map +1 -0
- package/dist/cli/utils/threat-detector.d.ts +48 -0
- package/dist/cli/utils/threat-detector.d.ts.map +1 -0
- package/dist/cli/utils/threat-detector.js +304 -0
- package/dist/cli/utils/threat-detector.js.map +1 -0
- package/dist/{client.d.ts → sdk/client.d.ts} +8 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/{client.js → sdk/client.js} +115 -19
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/crypto/poseidon.d.ts.map +1 -0
- package/dist/sdk/crypto/poseidon.js.map +1 -0
- package/dist/sdk/events/bus.d.ts.map +1 -0
- package/dist/sdk/events/bus.js.map +1 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/integrity.d.ts.map +1 -0
- package/dist/sdk/integrity.js.map +1 -0
- package/dist/sdk/network/shadow-rpc.d.ts.map +1 -0
- package/dist/sdk/network/shadow-rpc.js.map +1 -0
- package/dist/sdk/passport/manager.d.ts.map +1 -0
- package/dist/sdk/passport/manager.js.map +1 -0
- package/dist/sdk/pipeline.d.ts.map +1 -0
- package/dist/sdk/pipeline.js.map +1 -0
- package/dist/sdk/privacy/relayer.d.ts.map +1 -0
- package/dist/sdk/privacy/relayer.js.map +1 -0
- package/dist/{privacy → sdk/privacy}/shield.d.ts +4 -1
- package/dist/sdk/privacy/shield.d.ts.map +1 -0
- package/dist/{privacy → sdk/privacy}/shield.js +57 -11
- package/dist/sdk/privacy/shield.js.map +1 -0
- package/dist/sdk/privacy-engine.d.ts.map +1 -0
- package/dist/sdk/privacy-engine.js.map +1 -0
- package/dist/sdk/registry/idl-fetcher.d.ts.map +1 -0
- package/dist/sdk/registry/idl-fetcher.js.map +1 -0
- package/dist/sdk/registry/programs.d.ts.map +1 -0
- package/dist/sdk/registry/programs.js.map +1 -0
- package/dist/sdk/rescue/analyzer.d.ts.map +1 -0
- package/dist/sdk/rescue/analyzer.js.map +1 -0
- package/dist/sdk/rescue/builder.d.ts.map +1 -0
- package/dist/sdk/rescue/builder.js.map +1 -0
- package/dist/sdk/security/key-rotation.d.ts.map +1 -0
- package/dist/sdk/security/key-rotation.js.map +1 -0
- package/dist/{semantics → sdk/semantics}/analyzer.d.ts.map +1 -1
- package/dist/{semantics → sdk/semantics}/analyzer.js.map +1 -1
- package/dist/sdk/semantics/decoder.d.ts.map +1 -0
- package/dist/sdk/semantics/decoder.js.map +1 -0
- package/dist/{semantics → sdk/semantics}/graph.d.ts.map +1 -1
- package/dist/{semantics → sdk/semantics}/graph.js.map +1 -1
- package/dist/sdk/semantics/idl-registry.d.ts.map +1 -0
- package/dist/sdk/semantics/idl-registry.js.map +1 -0
- package/dist/sdk/semantics/types.d.ts.map +1 -0
- package/dist/sdk/semantics/types.js.map +1 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/{semantics → sdk}/types.js.map +1 -1
- package/dist/sdk/utils/address.d.ts.map +1 -0
- package/dist/sdk/utils/address.js.map +1 -0
- package/dist/sdk/utils/config.d.ts.map +1 -0
- package/dist/sdk/utils/config.js.map +1 -0
- package/dist/sdk/utils/logger.d.ts.map +1 -0
- package/dist/sdk/utils/logger.js.map +1 -0
- package/dist/simple-scan.js +249 -0
- package/package.json +104 -37
- package/CHANGELOG.md +0 -118
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/crypto/poseidon.d.ts.map +0 -1
- package/dist/crypto/poseidon.js.map +0 -1
- package/dist/events/bus.d.ts.map +0 -1
- package/dist/events/bus.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrity.d.ts.map +0 -1
- package/dist/integrity.js.map +0 -1
- package/dist/network/shadow-rpc.d.ts.map +0 -1
- package/dist/network/shadow-rpc.js.map +0 -1
- package/dist/passport/manager.d.ts.map +0 -1
- package/dist/passport/manager.js.map +0 -1
- package/dist/pipeline.d.ts.map +0 -1
- package/dist/pipeline.js.map +0 -1
- package/dist/privacy/relayer.d.ts.map +0 -1
- package/dist/privacy/relayer.js.map +0 -1
- package/dist/privacy/shield.d.ts.map +0 -1
- package/dist/privacy/shield.js.map +0 -1
- package/dist/privacy-engine.d.ts.map +0 -1
- package/dist/privacy-engine.js.map +0 -1
- package/dist/registry/idl-fetcher.d.ts.map +0 -1
- package/dist/registry/idl-fetcher.js.map +0 -1
- package/dist/registry/programs.d.ts.map +0 -1
- package/dist/registry/programs.js.map +0 -1
- package/dist/rescue/analyzer.d.ts.map +0 -1
- package/dist/rescue/analyzer.js.map +0 -1
- package/dist/rescue/builder.d.ts.map +0 -1
- package/dist/rescue/builder.js.map +0 -1
- package/dist/security/key-rotation.d.ts.map +0 -1
- package/dist/security/key-rotation.js.map +0 -1
- package/dist/semantics/decoder.d.ts.map +0 -1
- package/dist/semantics/decoder.js.map +0 -1
- package/dist/semantics/idl-registry.d.ts.map +0 -1
- package/dist/semantics/idl-registry.js.map +0 -1
- package/dist/semantics/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/address.d.ts.map +0 -1
- package/dist/utils/address.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- /package/dist/{crypto → sdk/crypto}/poseidon.d.ts +0 -0
- /package/dist/{crypto → sdk/crypto}/poseidon.js +0 -0
- /package/dist/{events → sdk/events}/bus.d.ts +0 -0
- /package/dist/{events → sdk/events}/bus.js +0 -0
- /package/dist/{index.d.ts → sdk/index.d.ts} +0 -0
- /package/dist/{index.js → sdk/index.js} +0 -0
- /package/dist/{integrity.d.ts → sdk/integrity.d.ts} +0 -0
- /package/dist/{integrity.js → sdk/integrity.js} +0 -0
- /package/dist/{network → sdk/network}/shadow-rpc.d.ts +0 -0
- /package/dist/{network → sdk/network}/shadow-rpc.js +0 -0
- /package/dist/{passport → sdk/passport}/manager.d.ts +0 -0
- /package/dist/{passport → sdk/passport}/manager.js +0 -0
- /package/dist/{pipeline.d.ts → sdk/pipeline.d.ts} +0 -0
- /package/dist/{pipeline.js → sdk/pipeline.js} +0 -0
- /package/dist/{privacy → sdk/privacy}/relayer.d.ts +0 -0
- /package/dist/{privacy → sdk/privacy}/relayer.js +0 -0
- /package/dist/{privacy-engine.d.ts → sdk/privacy-engine.d.ts} +0 -0
- /package/dist/{privacy-engine.js → sdk/privacy-engine.js} +0 -0
- /package/dist/{registry → sdk/registry}/idl-fetcher.d.ts +0 -0
- /package/dist/{registry → sdk/registry}/idl-fetcher.js +0 -0
- /package/dist/{registry → sdk/registry}/programs.d.ts +0 -0
- /package/dist/{registry → sdk/registry}/programs.js +0 -0
- /package/dist/{rescue → sdk/rescue}/analyzer.d.ts +0 -0
- /package/dist/{rescue → sdk/rescue}/analyzer.js +0 -0
- /package/dist/{rescue → sdk/rescue}/builder.d.ts +0 -0
- /package/dist/{rescue → sdk/rescue}/builder.js +0 -0
- /package/dist/{security → sdk/security}/key-rotation.d.ts +0 -0
- /package/dist/{security → sdk/security}/key-rotation.js +0 -0
- /package/dist/{semantics → sdk/semantics}/analyzer.d.ts +0 -0
- /package/dist/{semantics → sdk/semantics}/analyzer.js +0 -0
- /package/dist/{semantics → sdk/semantics}/decoder.d.ts +0 -0
- /package/dist/{semantics → sdk/semantics}/decoder.js +0 -0
- /package/dist/{semantics → sdk/semantics}/graph.d.ts +0 -0
- /package/dist/{semantics → sdk/semantics}/graph.js +0 -0
- /package/dist/{semantics → sdk/semantics}/idl-registry.d.ts +0 -0
- /package/dist/{semantics → sdk/semantics}/idl-registry.js +0 -0
- /package/dist/{semantics → sdk/semantics}/types.d.ts +0 -0
- /package/dist/{semantics → sdk/semantics}/types.js +0 -0
- /package/dist/{types.d.ts → sdk/types.d.ts} +0 -0
- /package/dist/{types.js → sdk/types.js} +0 -0
- /package/dist/{utils → sdk/utils}/address.d.ts +0 -0
- /package/dist/{utils → sdk/utils}/address.js +0 -0
- /package/dist/{utils → sdk/utils}/config.d.ts +0 -0
- /package/dist/{utils → sdk/utils}/config.js +0 -0
- /package/dist/{utils → sdk/utils}/logger.d.ts +0 -0
- /package/dist/{utils → sdk/utils}/logger.js +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Privacy-Zero Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,302 +1,312 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<br />
|
|
3
|
+
<pre>
|
|
4
|
+
███████╗ ██████╗ ██╗ ██╗ ██╗ ██████╗ ██╗██████╗
|
|
5
|
+
██╔════╝██╔═══██╗██║ ██║ ██║██╔═══██╗██║██╔══██╗
|
|
6
|
+
███████╗██║ ██║██║ ██║ ██║██║ ██║██║██║ ██║
|
|
7
|
+
╚════██║██║ ██║██║ ╚██╗ ██╔╝██║ ██║██║██║ ██║
|
|
8
|
+
███████║╚██████╔╝███████╗ ╚████╔╝ ╚██████╔╝██║██████╔╝
|
|
9
|
+
╚══════╝ ╚═════╝ ╚══════╝ ╚═══╝ ╚═════╝ ╚═╝╚═════╝
|
|
10
|
+
</pre>
|
|
11
|
+
|
|
12
|
+
<h3><b>SolVoid Protocol: The Enterprise Sovereign Privacy Layer</b></h3>
|
|
13
|
+
<p><i>Next-Generation Zero-Knowledge Privacy Lifecycle Management (PLM) for the Solana Ecosystem</i></p>
|
|
14
|
+
|
|
15
|
+
<p>
|
|
16
|
+
<a href="https://github.com/brainless3178/SolVoid/actions"><img src="https://img.shields.io/github/actions/workflow/status/brainless3178/SolVoid/privacy.yml?branch=main&style=for-the-badge&logo=github&label=CI/CD%20Pipeline" alt="Build Status"></a>
|
|
17
|
+
<a href="https://codecov.io/gh/brainless3178/SolVoid"><img src="https://img.shields.io/badge/ZK%20Circuit%20Coverage-98%25-brightgreen?style=for-the-badge&logo=codecov&label=ZK%20Circuit%20Coverage" alt="Code Coverage"></a>
|
|
18
|
+
<a href="https://github.com/brainless3178/SolVoid/releases"><img src="https://img.shields.io/badge/Production-v1.2.0-blue?style=for-the-badge&logo=github" alt="Version"></a>
|
|
19
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge&logo=github" alt="License"></a>
|
|
20
|
+
</p>
|
|
21
|
+
<p>
|
|
22
|
+
<a href="https://solana.com"><img src="https://img.shields.io/badge/Solana-Mainnet--Beta%20Ready-black?style=for-the-badge&logo=solana" alt="Solana Compatibility"></a>
|
|
23
|
+
<a href="./docs"><img src="https://img.shields.io/badge/Documentation-Stripe--Grade-green?style=for-the-badge&logo=gitbook" alt="Docs Status"></a>
|
|
24
|
+
<a href="https://github.com/brainless3178/SolVoid/security/advisories"><img src="https://img.shields.io/badge/Security-Cryptographic%20Verified-brightgreen?style=for-the-badge&logo=dependabot" alt="Security Status"></a>
|
|
25
|
+
<a href="https://discord.gg/solvoid"><img src="https://img.shields.io/badge/Discord-Audit%20Live-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<strong>SolVoid</strong> is a high-performance, non-custodial privacy protocol that provides a decentralized identity-abstraction layer on the Solana blockchain.
|
|
30
|
+
<br />
|
|
31
|
+
It utilizes <b>Groth16 Zero-Knowledge SNARKs</b> and <b>Poseidon-3 Hashing</b> to deliver institutional-grade anonymity at sub-second speeds.
|
|
32
|
+
</p>
|
|
33
|
+
</div>
|
|
2
34
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
SolVoid enables privacy-preserving transactions on Solana through advanced zero-knowledge proof systems. This SDK provides TypeScript interfaces for integrating privacy functionality into Solana applications.
|
|
8
|
-
|
|
9
|
-
## Features
|
|
35
|
+
---
|
|
10
36
|
|
|
11
|
-
|
|
12
|
-
- **Merkle Tree Commitments**: Efficient state management with Poseidon hashing
|
|
13
|
-
- **Double-Spend Prevention**: Nullifier-based protection against replay attacks
|
|
14
|
-
- **Economic Controls**: Circuit breaker mechanisms and rate limiting
|
|
15
|
-
- **Multi-Signature Security**: Threshold validation for critical operations
|
|
16
|
-
- **TypeScript Support**: Full type safety and IntelliSense support
|
|
37
|
+
## 🔱 Executive Vision
|
|
17
38
|
|
|
18
|
-
|
|
39
|
+
In the landscape of hyper-transparent blockchain architectures, **SolVoid** represents the critical transition from "Public-by-Default" to "Private-by-Choice." The protocol is engineered to neutralize the risks of on-chain telemetry, MEV-sandwich attacks, and transaction graph heuristics. By decoupling asset ownership from transaction history, SolVoid empowers individuals and institutions to execute sensitive financial maneuvers with the speed of Solana and the secrecy of Zero-Knowledge.
|
|
19
40
|
|
|
20
|
-
|
|
21
|
-
npm install solvoid
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Quick Start
|
|
41
|
+
---
|
|
25
42
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
43
|
+
## 🧭 Master Table of Contents
|
|
44
|
+
|
|
45
|
+
1. [Core Value Propositions](#-core-value-propositions)
|
|
46
|
+
2. [Exhaustive Feature Matrix](#-exhaustive-feature-matrix)
|
|
47
|
+
3. [Deep-Dive Architecture](#-deep-dive-architecture)
|
|
48
|
+
- [ZK-SNARK Circuit Topology](#zk-snark-circuit-topology)
|
|
49
|
+
- [The Poseidon-3 Hash Standard](#the-poseidon-3-hash-standard)
|
|
50
|
+
- [On-Chain State Management](#on-chain-state-management)
|
|
51
|
+
4. [Privacy Ghost Score Diagnostics](#-privacy-ghost-score-diagnostics)
|
|
52
|
+
5. [Command-Line Interface (CLI) Master Reference](#-command-line-interface-cli-master-reference)
|
|
53
|
+
6. [Shadow Relayer Infrastructure](#-shadow-relayer-infrastructure)
|
|
54
|
+
7. [Operational Setup & Lifecycle](#-operational-setup--lifecycle)
|
|
55
|
+
8. [Security, Validation & Testing](#-security-validation--testing)
|
|
56
|
+
- [The Shell Script Index](#the-shell-script-index)
|
|
57
|
+
9. [Master Strategic Roadmap](#-master-strategic-roadmap)
|
|
58
|
+
10. [Repository Directory Blueprint](#-repository-directory-blueprint)
|
|
59
|
+
11. [Governance & Strategic Contributions](#-governance--strategic-contributions)
|
|
60
|
+
12. [Glossary of Cryptographic Terms](#-glossary-of-cryptographic-terms)
|
|
29
61
|
|
|
30
|
-
|
|
31
|
-
const connection = new SolanaConnection('https://api.devnet.solana.com');
|
|
32
|
-
const client = new SolVoidClient(connection);
|
|
62
|
+
---
|
|
33
63
|
|
|
34
|
-
|
|
35
|
-
const commitment = await client.generateCommitment();
|
|
64
|
+
## 💎 Core Value Propositions
|
|
36
65
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
recipient: Keypair.generate().publicKey
|
|
42
|
-
});
|
|
66
|
+
- **Unlinkable Anonymity**: Complete decoupling of funding sources from destination wallets via Merkle-tree based shielding.
|
|
67
|
+
- **Hardware-Accelerated Privacy**: Optimized for Solana’s runtime, achieving verification costs below 200,000 Compute Units.
|
|
68
|
+
- **Zero-Knowledge Integrity**: Pure cryptographic proof of ownership without revealing the source deposit (Secret/Nullifier).
|
|
69
|
+
- **Anti-Heuristic Engine**: Native defense against transaction timing and volume analysis via the Ghost Scoring diagnostics.
|
|
43
70
|
|
|
44
|
-
|
|
45
|
-
await connection.sendTransaction(depositTx);
|
|
46
|
-
```
|
|
71
|
+
---
|
|
47
72
|
|
|
48
|
-
##
|
|
73
|
+
## ✨ Exhaustive Feature Matrix
|
|
49
74
|
|
|
50
|
-
|
|
75
|
+
| Domain | Capability | Technical Detail | Status |
|
|
76
|
+
| :--- | :--- | :--- | :---: |
|
|
77
|
+
| **Shielding** | **ZK-Commitment Pool** | Fixed-depth (20) Merkle Tree supporting 1M+ deposits. | ✅ |
|
|
78
|
+
| **Withdrawal** | **Groth16 Verification** | Sub-600ms proof generation on-device via WASM/SDK. | ✅ |
|
|
79
|
+
| **Diagnostics** | **Privacy Ghost Score** | 4-pillar metadata audit (Linkage, Temporal, Volume, Entropy). | ✅ |
|
|
80
|
+
| **Infrastructure**| **Shadow Relayer 2.0** | Gasless & IP-anonymous transaction broadcasting. | ✅ |
|
|
81
|
+
| **Emergency** | **Atomic Rescue** | <2s scripted migration for compromised private keys. | ✅ |
|
|
82
|
+
| **Identity** | **ZK-Signed Badges** | Portable personal privacy credentials without revealing the URI. | ✅ |
|
|
83
|
+
| **Scanners** | **Ultimate Privacy Scan** | Resilience suite using 40+ RPCs with IP-rotation. | ✅ |
|
|
51
84
|
|
|
52
|
-
|
|
85
|
+
---
|
|
53
86
|
|
|
54
|
-
|
|
55
|
-
import { PrivacyEngine } from 'solvoid';
|
|
87
|
+
## 🧬 Deep-Dive Architecture
|
|
56
88
|
|
|
57
|
-
|
|
58
|
-
const proof = await engine.generateWithdrawProof({
|
|
59
|
-
root: merkleRoot,
|
|
60
|
-
nullifier: nullifierHash,
|
|
61
|
-
recipient: userPublicKey,
|
|
62
|
-
amount: 1000000,
|
|
63
|
-
relayer: relayerPublicKey,
|
|
64
|
-
fee: 10000
|
|
65
|
-
});
|
|
66
|
-
```
|
|
89
|
+
SolVoid is not a single tool, but a synergistic ecosystem of cryptographic primitives and on-chain state managers.
|
|
67
90
|
|
|
68
|
-
|
|
91
|
+
```mermaid
|
|
92
|
+
graph TD
|
|
93
|
+
subgraph "Local Secure Environment (WASM)"
|
|
94
|
+
A[User Input] -->|Secret Generation| B(Poseidon Hash)
|
|
95
|
+
B -->|Commitment| C{Circom Prover}
|
|
96
|
+
C -->|Groth16 Proof| D[Signed Payload]
|
|
97
|
+
end
|
|
69
98
|
|
|
70
|
-
|
|
99
|
+
subgraph "Distributed Networking"
|
|
100
|
+
D -->|Anonymous Broadcast| E[Shadow Relayer Node]
|
|
101
|
+
E -->|Transaction Forwarding| F[Solana Mainnet]
|
|
102
|
+
end
|
|
71
103
|
|
|
72
|
-
|
|
73
|
-
|
|
104
|
+
subgraph "Solana Smart Contract (Anchor)"
|
|
105
|
+
F --> G[Merkle Tree State]
|
|
106
|
+
G -->|Root Validation| H[Verifier Module]
|
|
107
|
+
H -->|Nullifier Check| I[Fund Release]
|
|
108
|
+
end
|
|
74
109
|
|
|
75
|
-
|
|
76
|
-
const leafIndex = await tree.insert(commitment);
|
|
77
|
-
const proof = await tree.generateProof(leafIndex);
|
|
78
|
-
const root = tree.getRoot();
|
|
110
|
+
I -->|Private Funds| J[New Stealth Address]
|
|
79
111
|
```
|
|
80
112
|
|
|
81
|
-
###
|
|
113
|
+
### ZK-SNARK Circuit Topology
|
|
114
|
+
Our circuits are written in **Circom 2.1**, employing a Groth16 proving scheme on the **BN254** elliptic curve. This ensures maximum compatibility with Solana's forthcoming ZK precompiles while maintaining current operational efficiency through our custom Rust verifier.
|
|
82
115
|
|
|
83
|
-
|
|
116
|
+
### The Poseidon-3 Hash Standard
|
|
117
|
+
We use **Poseidon-3**, a Sponge-construction hash function optimized specifically for R1CS (Rank-1 Constraint Systems).
|
|
118
|
+
- **Efficiency**: Reduces constraints from ~20,000 (Keccak) to **~210** per field element.
|
|
119
|
+
- **Security**: Provides 128-bit security against all known algebraic attacks.
|
|
84
120
|
|
|
85
|
-
|
|
86
|
-
|
|
121
|
+
### On-Chain State Management
|
|
122
|
+
The SolVoid program manages a sliding window of **100 Merkle Roots**. This allows users to generate proofs against slightly older state, mitigating the risk of "Root Drift" where a proof becomes invalid because someone else deposited simultaneously.
|
|
87
123
|
|
|
88
|
-
|
|
89
|
-
const tx = await relayer.submitWithdrawal({
|
|
90
|
-
proof,
|
|
91
|
-
root,
|
|
92
|
-
nullifier,
|
|
93
|
-
recipient,
|
|
94
|
-
amount,
|
|
95
|
-
fee
|
|
96
|
-
});
|
|
97
|
-
```
|
|
124
|
+
---
|
|
98
125
|
|
|
99
|
-
##
|
|
100
|
-
|
|
101
|
-
### SolVoidClient
|
|
102
|
-
|
|
103
|
-
Main client interface for SolVoid operations:
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
class SolVoidClient {
|
|
107
|
-
constructor(connection: Connection);
|
|
108
|
-
|
|
109
|
-
// Deposit operations
|
|
110
|
-
createDeposit(params: DepositParams): Promise<Transaction>;
|
|
111
|
-
generateCommitment(): Promise<Uint8Array>;
|
|
112
|
-
|
|
113
|
-
// Withdrawal operations
|
|
114
|
-
createWithdrawal(params: WithdrawalParams): Promise<Transaction>;
|
|
115
|
-
verifyWithdrawalProof(proof: ProofData): Promise<boolean>;
|
|
116
|
-
|
|
117
|
-
// Merkle tree operations
|
|
118
|
-
getMerkleRoot(): Promise<Uint8Array>;
|
|
119
|
-
generateMerkleProof(leafIndex: number): Promise<MerkleProof>;
|
|
120
|
-
}
|
|
121
|
-
```
|
|
126
|
+
## 👻 Privacy Ghost Score Diagnostics
|
|
122
127
|
|
|
123
|
-
|
|
128
|
+
The **Ghost Score** is the heartbeat of the SolVoid ecosystem. It provides an objective numerical rank (0-100) of your wallet's anonymity.
|
|
124
129
|
|
|
125
|
-
|
|
130
|
+
- **Linkage Score**: Identifies direct and N-hop paths to centralized exchanges (CEX) or known identifiers.
|
|
131
|
+
- **Temporal Analysis**: Detects "human" rhythms in transaction timing (e.g., repeating daily patterns).
|
|
132
|
+
- **Volume Profiling**: Flagging of round-number deposits (e.g., exactly 10.0 SOL) which are easier to track.
|
|
126
133
|
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
verifyProof(proof: ProofData, publicInputs: Uint8Array[]): Promise<boolean>;
|
|
131
|
-
generateNullifier(secret: Uint8Array): Promise<Uint8Array>;
|
|
132
|
-
poseidonHash(inputs: Uint8Array[]): Promise<Uint8Array>;
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Types
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
interface DepositParams {
|
|
140
|
-
commitment: Uint8Array;
|
|
141
|
-
amount: number;
|
|
142
|
-
recipient: PublicKey;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
interface WithdrawalParams {
|
|
146
|
-
proof: ProofData;
|
|
147
|
-
root: Uint8Array;
|
|
148
|
-
nullifier: Uint8Array;
|
|
149
|
-
recipient: PublicKey;
|
|
150
|
-
relayer: PublicKey;
|
|
151
|
-
fee: number;
|
|
152
|
-
amount: number;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
interface ProofData {
|
|
156
|
-
a: Uint8Array[];
|
|
157
|
-
b: Uint8Array[][];
|
|
158
|
-
c: Uint8Array[];
|
|
159
|
-
}
|
|
134
|
+
```bash
|
|
135
|
+
# Execute deep-scan and generate shareable ZK-signed badge
|
|
136
|
+
solvoid-scan ghost <MY_ADDRESS> --badge --share --json
|
|
160
137
|
```
|
|
161
138
|
|
|
162
|
-
|
|
139
|
+
---
|
|
163
140
|
|
|
164
|
-
|
|
141
|
+
## 🔧 Command-Line Interface (CLI) Master Reference
|
|
165
142
|
|
|
166
|
-
|
|
167
|
-
import { SolVoidConfig } from 'solvoid';
|
|
143
|
+
The `solvoid-scan` CLI is a production-grade binary for privacy management.
|
|
168
144
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
```
|
|
145
|
+
#### Core Operational Commands
|
|
146
|
+
- `solvoid-scan shield <amount>`: The primary ingress. Converts native SOL to a ZK-Commitment.
|
|
147
|
+
- `solvoid-scan withdraw <secret> <nullifier> <recipient> <amount>`: The primary egress. Reclaims funds anonymously.
|
|
148
|
+
- `solvoid-scan ghost <address>`: Generates the Ghost Score report and visual terminal art.
|
|
149
|
+
- `solvoid-scan protect <address>`: Active monitoring mode for identifying real-time privacy leaks.
|
|
150
|
+
- `solvoid-scan rescue <wallet>`: Atomic "nuke" option for high-speed mitigation of key leaks.
|
|
176
151
|
|
|
177
|
-
|
|
152
|
+
#### Protocol Administration
|
|
153
|
+
- `solvoid-scan admin trigger-emergency <mult> <reason>`: Globally scale protocol fees (1x-10x).
|
|
154
|
+
- `solvoid-scan admin disable-emergency`: Restore baseline fee economics.
|
|
155
|
+
- `solvoid-scan admin pause`: Trigger Circuit Breaker to halt all withdrawals.
|
|
156
|
+
- `solvoid-scan admin resume`: Lift Circuit Breaker and resume protocol operations.
|
|
178
157
|
|
|
179
|
-
|
|
180
|
-
|
|
158
|
+
#### Global Flags & Automation
|
|
159
|
+
| Flag | Description | Default |
|
|
160
|
+
| :--- | :--- | :--- |
|
|
161
|
+
| `--rpc <URL>` | Override standard Solana RPC endpoints. | Mainnet-Beta |
|
|
162
|
+
| `--program <ID>` | Override the default SolVoid Program ID. | `Fg6Pa...` |
|
|
163
|
+
| `--relayer <URL>` | Target a specific Shadow Relayer instance. | `http://localhost:3000` |
|
|
164
|
+
| `--dry-run` | Perform an atomic simulation without spending gas. | `false` |
|
|
165
|
+
| `--json` | Output all results in raw JSON format for CI/CD. | `false` |
|
|
181
166
|
|
|
182
|
-
|
|
183
|
-
await vkManager.loadVerificationKey('withdraw', vkData);
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
## Security Considerations
|
|
187
|
-
|
|
188
|
-
### Key Management
|
|
167
|
+
---
|
|
189
168
|
|
|
190
|
-
|
|
191
|
-
- Use different keys for different operations (deposit, withdrawal, relayer)
|
|
192
|
-
- Implement proper key rotation policies
|
|
169
|
+
## 🛰 Shadow Relayer Infrastructure
|
|
193
170
|
|
|
194
|
-
|
|
171
|
+
The **Shadow Relayer** is a critical component for achieving network-level anonymity.
|
|
195
172
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
- Consider timing attacks when submitting transactions
|
|
173
|
+
> **TIP**
|
|
174
|
+
> Use the Relayer to avoid "Gas Linkage." If you fund your new recipient wallet with gas from an exchange, you have nullified your privacy. The Relayer solves this by paying the gas for you and deducting a small bounty from the withdrawal.
|
|
199
175
|
|
|
200
|
-
###
|
|
176
|
+
### Relayer Endpoints
|
|
177
|
+
- `GET /health`: Node status and network metrics.
|
|
178
|
+
- `POST /register`: Onboarding for new relay nodes.
|
|
179
|
+
- `POST /relay`: The primary submission point for ZK-signed transactions.
|
|
180
|
+
- `POST /encrypt-route`: Prepares multi-hop onion-routed payloads.
|
|
201
181
|
|
|
202
|
-
|
|
203
|
-
- Implement monitoring for unusual activity patterns
|
|
204
|
-
- Regular security audits of integration code
|
|
182
|
+
---
|
|
205
183
|
|
|
206
|
-
##
|
|
184
|
+
## 🚀 Operational Setup & Lifecycle
|
|
207
185
|
|
|
208
|
-
|
|
209
|
-
|
|
186
|
+
### 1. Requirements
|
|
187
|
+
- **Node.js**: v18.0.0+ (Recommended: v20 LTS)
|
|
188
|
+
- **Rust/Cargo**: 1.75.0+
|
|
189
|
+
- **Solana CLI**: Latest Stable
|
|
190
|
+
- **Hardware**: AVX2 support (optional, for faster local proving)
|
|
210
191
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
192
|
+
### 2. Deployment Flow
|
|
193
|
+
```bash
|
|
194
|
+
# Clone Enterprise Repository
|
|
195
|
+
git clone https://github.com/brainless3178/SolVoid.git
|
|
196
|
+
cd solvoid
|
|
214
197
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
testnet: true
|
|
218
|
-
});
|
|
198
|
+
# Install Critical Dependencies
|
|
199
|
+
npm install && npm run build
|
|
219
200
|
|
|
220
|
-
|
|
201
|
+
# Configure Environment
|
|
202
|
+
cp .env.example .env
|
|
221
203
|
```
|
|
222
204
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
- **Proof Verification**: ~1ms (constant time)
|
|
229
|
-
- **Merkle Proof**: ~10ms (depth 20 tree)
|
|
230
|
-
- **Transaction Size**: ~2KB (including proof data)
|
|
205
|
+
### 3. Local Ceremony (Optional)
|
|
206
|
+
For highly secure local environments, run a personal MPC ceremony:
|
|
207
|
+
```bash
|
|
208
|
+
./scripts/run-ceremony.sh
|
|
209
|
+
```
|
|
231
210
|
|
|
232
|
-
|
|
211
|
+
---
|
|
233
212
|
|
|
234
|
-
|
|
235
|
-
- Use connection pooling for high-throughput applications
|
|
236
|
-
- Implement proof caching for repeated operations
|
|
237
|
-
- Consider off-chain proof generation for better UX
|
|
213
|
+
## 🛡 Security, Validation & Testing
|
|
238
214
|
|
|
239
|
-
|
|
215
|
+
SolVoid employs a "Defense in Depth" strategy, validated by a massive suite of specialized shell scripts in `/scripts`.
|
|
240
216
|
|
|
241
|
-
###
|
|
217
|
+
### The Shell Script Index
|
|
218
|
+
| Script | Documentation |
|
|
219
|
+
| :--- | :--- |
|
|
220
|
+
| `./scripts/run-security-tests.sh` | **The Master Suite**: Runs every validation mentioned below. |
|
|
221
|
+
| `./scripts/verify-hash-consistency.sh` | Confirms Poseidon-3 parity across Rust, TS, and Circom logic. |
|
|
222
|
+
| `./scripts/vault-balance-protection.sh` | Simulates "phantom withdrawal" attacks to verify vault safety. |
|
|
223
|
+
| `./scripts/nullifier-validation-test.sh` | Verifies the impossibility of double-spending. |
|
|
224
|
+
| `./scripts/test-emergency-procedures.sh` | Stress-tests the speed and effectiveness of the Atomic Rescue. |
|
|
225
|
+
| `./scripts/arithmetic-safety-test.sh` | Probes for overflows and field-element collisions. |
|
|
226
|
+
| `./scripts/rust-dependency-audit.sh` | Performs a deep audit of the cargo dependency tree for CVEs. |
|
|
242
227
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
228
|
+
### Testing Lifecycle
|
|
229
|
+
```bash
|
|
230
|
+
# Run unit tests for SDK and CLI
|
|
231
|
+
npm run test:unit
|
|
247
232
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
- Use compression for large transactions
|
|
251
|
-
- Consider transaction batching
|
|
233
|
+
# Run full integration tests with local validator
|
|
234
|
+
npm run test:integration
|
|
252
235
|
|
|
253
|
-
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
-
- Implement retry logic with exponential backoff
|
|
236
|
+
# Execute 100% security validation suite
|
|
237
|
+
./scripts/security-validation.sh
|
|
238
|
+
```
|
|
257
239
|
|
|
258
|
-
|
|
240
|
+
---
|
|
259
241
|
|
|
260
|
-
|
|
261
|
-
import { SolVoidLogger } from 'solvoid';
|
|
242
|
+
## 🗺 Master Strategic Roadmap
|
|
262
243
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
244
|
+
### Phase 1: Foundation (Current Status: ✅ COMPLETED)
|
|
245
|
+
- [x] Merkle Tree Core Logic (Depth 20)
|
|
246
|
+
- [x] Poseidon-3 Sponge Construction Hashing
|
|
247
|
+
- [x] Groth16 Proving Engine (Browser & Node)
|
|
248
|
+
- [x] Multi-platform SDK for dApp developers
|
|
266
249
|
|
|
267
|
-
|
|
250
|
+
### Phase 2: Visibility (Current Status: ✅ COMPLETED)
|
|
251
|
+
- [x] Privacy Ghost Scoring Diagnostics
|
|
252
|
+
- [x] Shadow Relayer Alpha Deployment
|
|
253
|
+
- [x] CLI Automation Tools & Binary Releases
|
|
254
|
+
- [x] ZK-Signed Privacy Badges
|
|
268
255
|
|
|
269
|
-
|
|
256
|
+
### Phase 3: Expansion (Timeline: Q2 2026)
|
|
257
|
+
- [ ] **SPL Token Support**: Shielding for USDC, BONK, and JupSOL.
|
|
258
|
+
- [ ] **Decentralized Relayer Incentives**: Governance-managed relayer rewards.
|
|
259
|
+
- [ ] **On-chain MPC Ceremony**: Official ceremony for Mainnet-Beta Proving Keys.
|
|
260
|
+
- [ ] **Onion Routing**: Layered network anonymity via the Relayer Mesh.
|
|
270
261
|
|
|
271
|
-
|
|
262
|
+
---
|
|
272
263
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
264
|
+
## 📂 Repository Directory Blueprint
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
.
|
|
268
|
+
├── programs/ # Anchor-based Solana Smart Contracts (Rust)
|
|
269
|
+
├── circuits/ # Circom 2.1 source files & ZK Proving keys
|
|
270
|
+
├── sdk/ # TypeScript SDK for frontend & backend integration
|
|
271
|
+
├── cli/ # Source code for the solvoid-scan binary
|
|
272
|
+
├── relayer/ # Shadow Relayer Node source (Node.js/Express)
|
|
273
|
+
├── dashboard/ # Next.js 15 Web interface
|
|
274
|
+
├── scripts/ # Over 30+ production shell scripts for DevOps/Security
|
|
275
|
+
├── bin/ # Compiled CLI executables
|
|
276
|
+
└── docs/ # Technical Specifications & Manuals
|
|
279
277
|
```
|
|
280
278
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
MIT License - see [LICENSE](LICENSE) file for details.
|
|
279
|
+
---
|
|
284
280
|
|
|
285
|
-
##
|
|
281
|
+
## 🤝 Governance & Strategic Contributions
|
|
286
282
|
|
|
287
|
-
|
|
288
|
-
- **Issues**: [GitHub Issues](https://github.com/privacy-zero/solvoid/issues)
|
|
289
|
-
- **Discord**: [SolVoid Community](https://discord.gg/solvoid)
|
|
290
|
-
- **Email**: support@solvoid.io
|
|
283
|
+
We welcome contributions from cryptographers, security researchers, and developers.
|
|
291
284
|
|
|
292
|
-
|
|
285
|
+
1. **Read** the [Security Policy](./SECURITY.md).
|
|
286
|
+
2. **Review** our [Contributing Guidelines][contributing].
|
|
287
|
+
3. **Submit** an issue using the provided templates.
|
|
288
|
+
4. **Open** a Pull Request against the `develop` branch.
|
|
293
289
|
|
|
294
|
-
|
|
290
|
+
---
|
|
295
291
|
|
|
296
|
-
##
|
|
292
|
+
## 📚 Glossary of Cryptographic Terms
|
|
297
293
|
|
|
298
|
-
|
|
294
|
+
- **BN254**: The barreto-naehrig elliptic curve used for SNARKs.
|
|
295
|
+
- **R1CS**: Rank-1 Constraint System; the mathematical representation of our circuits.
|
|
296
|
+
- **Nullifier**: A unique serial number for a deposit, kept secret until withdrawal.
|
|
297
|
+
- **Commitment**: The hash of (Secret + Nullifier + Amount), stored on-chain.
|
|
298
|
+
- **Circuit**: A specialized piece of logic that defines what the ZK proof proves.
|
|
299
299
|
|
|
300
300
|
---
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
<p align="center">
|
|
303
|
+
<b>Built for the Solana Privacy Hackathon 2026.</b><br />
|
|
304
|
+
SolVoid is an open-source contribution to the global right to financial anonymity.
|
|
305
|
+
</p>
|
|
306
|
+
|
|
307
|
+
<div align="center">
|
|
308
|
+
<a href="#-solvoid-protocol-the-enterprise-sovereign-privacy-layer"><b>↑ BACK TO TOP ↑</b></a>
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
[commands-docs]: ./COMMANDS.md
|
|
312
|
+
[contributing]: ./CONTRIBUTING.md
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Security Disclosure
|
|
4
|
+
|
|
5
|
+
Privacy is a human right, but software security is a continuous process. If you discover a vulnerability in SolVoid, we ask that you disclose it to us responsibly so we can protect our users.
|
|
6
|
+
|
|
7
|
+
### Reporting a Vulnerability
|
|
8
|
+
- **Email:** [security@solvoid.io] (Placeholder)
|
|
9
|
+
- **Encryption:** Please use our PGP key (Link placeholder) to encrypt sensitive reports.
|
|
10
|
+
- **Process:** We will acknowledge your report within 48 hours and provide a timeline for a fix. We ask that you do not disclose the vulnerability publicly until we have released a patch.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Security Best Practices for Users
|
|
15
|
+
1. **Never share your Secret or Nullifier.** These are the only keys to your anonymous funds. If lost or stolen, your funds are gone.
|
|
16
|
+
2. **Use a Fresh Wallet for Withdrawals.** To maintain privacy, ensure your destination address has no previous on-chain links to your identity.
|
|
17
|
+
3. **Verify the Domain.** Always ensure you are using the official `solvoid.io` dashboard or a verified local build of the SDK/CLI.
|
|
18
|
+
4. **Network Fees.** If not using a relayer, be aware that funding a fresh wallet with SOL for gas can compromise your privacy via timing or source-analysis.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Known Security Considerations (Brutal Honesty)
|
|
23
|
+
1. **Un-audited Code:** As of the current version, this protocol has **NOT** undergone a professional security audit.
|
|
24
|
+
2. **Trusted Setup:** The current ceremony files are for testing. A production-grade Multi-Party Computation (MPC) trusted setup is required before Mainnet launch.
|
|
25
|
+
3. **Draft Circuits:** Some constraints in the `withdraw.circom` are undergoing refinement to prevent potential edge-case under-constraints.
|
|
26
|
+
4. **Relayer Trust:** While relayers cannot steal funds (thanks to ZK binding), they could theoretically log user IP addresses or refuse to broadcast transactions (DoS).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Supported Versions
|
|
31
|
+
| Version | Supported |
|
|
32
|
+
|---------|-----------|
|
|
33
|
+
| 0.2.x | Beta |
|
|
34
|
+
| 0.1.x | Legacy |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Bug Bounty
|
|
39
|
+
We are currently operating a "Friendly Hacker" program. Critical vulnerabilities reported responsibly may be eligible for rewards in future protocol development funds.
|
package/bin/solvoid-scan
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Register the ghost command with the CLI program
|
|
4
|
+
* This is a non-breaking addition to your existing CLI
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerGhostCommand(program: Command): void;
|
|
7
|
+
/**
|
|
8
|
+
* Add helper text for the ghost command
|
|
9
|
+
*/
|
|
10
|
+
export declare function getGhostCommandHelp(): string;
|
|
11
|
+
//# sourceMappingURL=ghost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../../cli/commands/ghost.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA4EpD;AAsED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAwC5C"}
|